home *** CD-ROM | disk | FTP | other *** search
-
- 5/26/89
-
- Megaton Man Teaches Cracking
- ============================
-
-
- DOC CHECK PROTECTION
-
-
-
- Hello all you young and ameatur crackers! Today's lessons is on DOC Checks.
- Doc Checks are pretty easy once you get to know them. But some are a pain
- in the ass, like that Sub 688 game. But still, if you have a good working
- knowledge of 8088 assembly, it shouldn't really be a problem. I myself,
- only a 17 year old cheese high school boy, learned this facinating art form
- of cracking. I see cracking as a game within a game. The first being the
- actual game, the second is the Protection.
-
- Ok, here we go. Get your Cracking tools out. They should consist of a good
- Debugger of your choice. My choice is Microsoft's CodeView. Pretty easy to
- use and it's been working so far. But most of the major crackers seem to use
- Dos's DEBUG.COM. Which is found on your dos disk. They use this primitive but
- powerful tool because its so small in size, and wont bother with a game in
- memory. But i found CodeView lets you CTRL-BRK out of programs easier. Your
- next tool is NORTON UTILITIES. This program should be at your side all the
- time. You should have Norton and your Debug program in the PATH always because
- you will use it alot.
-
- Well, in this little package, you should find a file named DOC1.COM. This file
- is an assembly language file i made which simulates a DOC check. It'll give
- you some phony message like - "ENTER PASSWORD:". then you must enter the
- password inorder for the Program to tell you that you cracked it. The password
- for DOC1.COM is MEGATON MAN. Yea, i'm an egotistic asshole. but i love it.
- This is your game plan. First trace the program until the program waits for
- the input prompt. At that point, enter "KOOK" or anything at the prompt.
- Anything except MEGATON MAN. Then keep tracing the program till it eats
- shit (terminates). Try to memorize what path the program took and if you cant
- memorize, pen and paper always works. Now, restart the program and trace
- the program until the input prompt asks you for the password. Now instead of
- typeing the wrong password, type in MEGATON MAN, which is the correct pass-
- word. Now keep tracing the program and try again to memorize the path. Ok.
- The first part is over. Now, compare the two paths, and find out where a
- detour was made. Once you find the detour, just force the program to go the
- correct way. Are you saying, "How do i force the program?". Well find the
- Detour first.. and when you do continue on reading... So stop reading and
- try to crack DOC1.COM.
-
- Now that you are continuing reading, i suspect that you did find the Detour,
- or your Stumped. Well it doesnt matter, just keep reading.
-
- Ok, This is the "map" of this little program.
-
- XXXX:0100 Jmp 1E8
- :
- :
- XXXX:01E8 CALL 1F7 <--- Print Message and Ask for Password
- XXXX:01EB OR AX,AX <--- Is the AX register = 0?
- XXXX:01ED JNZ 1F2 <--- No. then jump to 1F2
- XXXX:01EF CALL 225 <--- This is DEATH!
- XXXX:01F2 CALL 21C <--- Call if its CRACKED!
-
- ok, this is the main part your worried about. Line 100, makes a jump to line
- 1E8. Now, 1E8 is CALL 1F7. what this CALL does, is, it Displays the intro
- message and asks you to input the Password. Now before executing this CALL
- statement on 1E8, take a look at the AX register. Write it down. Now,
- EXECUTE the entire Call. Use a BOGUS password. Take a look at the AX register
- after the call. The IP register should be on 1E8. What does the AX register
- contain? All 0000's? or 0001? Well Most Protections are like this! Even
- INT 13 protections! This is what's happening. When you execute the CALL 1F7,
- if you typed in the wrong password, the call will return with AX = 0000. If
- you typed in the correct password, the AX register will contain 0001. Pretty
- neat eh? Well, look at line 1EB. It is OR AX,AX. now this is pretty much like
- the CMP AX,0000 instruction. By using the OR AX,AX it saves memory (sorta),
- and is supposed to be faster than CMP AX,0000. Dont ask me why its like this,
- its just one of those Professional Programmers rules or somthing. Now to
- keep things going, Line 1EB checks to see if AX is equal to Zero. If AX is
- equal to zero, the ZERO FLAG is set. if not, then the ZERo flag is cleared.
- Look at line 1ED. It is JNZ 1F2. It says, Jump if Not Zero to line 1F2.
- See, AX will not equal zero if you entered the correct password. So if you
- entered the wrong password, the IP register will go down to line 1EF, which
- contains CALL 225, which is the Eat it and Die call! You dont want this!
- NEVER! If the correct Password was entered, line 1ED will jump down to line
- 1F2 which will execute a Call to tell you that you cracked the program. Now
- how could we change the program to make it so it will always jump to the
- correct line? well, there are a few different wayz we could do this. One ,is
- the EASY way, but less professional way. The next way is also an easy way,
- but also not as professional. And the last way is the harder way, and it is
- the professional way.
-
- Lets first try the second easy way. Because if i told you the easiest way
- first, your screw the program up! ok. Have you heard of the instruction
- NOP? Which means NO Operation. Yea, it doesnt do anything! just sorta
- patches up some instruction. Now if we NOP line 1EF (CALL 225), the program
- will encounter a NOP and keep continuing until the Call we want is reached,
- which is line 1F2 (call 21C). The Hex value for NOP is 90. So Disassemble
- the area we need to change and write down the bytes on, and around the area.
- Now flip out Norton Utilities and search for these bytes. Once found, do not
- Display them and change them! Continue with the search. Make sure there are
- no more discoveries. If you found another match, go back to the program,
- disassemble it and write down some more bytes around , and on the part you
- want fixed. Go back and search for these bytes. make sure there is only one
- occurance. ok, So there is one occurance, go find the bytes that you need
- changed. Once found, replace them with the hex value 90. Save your changes
- and bail out of Norton Utilites. Now Run DOC1.COM and type a wrong pasword.
- The program should tell you that its Cracked no matter what you type! if
- it told you that it was cracked, well you Cracked it! yea!
-
- The file DOC1.COM is cracked. Go to your MASTER DISK and copy the file on
- the MASTER DISK over to your SCREW AROUND DISK. which will get rid of the
- newly cracked DOC1.COM.
-
- Now that you have the DOC1.COM that is NOT cracked, lets begin the second
- way to crack the same program. Some DOC Check PROTECTORS are sorta lame
- and lazy. Remember i told you the password was MEGATON MAN? Well, when you
- purchase a game from EggHead or any other software place, and a DOC Protection
- accompanies the disk, there is always the DOC's that you need! well lets
- say for instance that you bought Silpheed. It's a DOC check type thingy. Well
- lets say one of the passwords was SIERRA. Pull out Norton Utilites and search
- for the characters S I E R R A. Norton should beep and show you where the
- word SIERRA was found. Now look around that area and see if there are any
- other words or letters around SIERRA. If so, read them. Now look in your Book
- of DOC's and see if a word on the screen matches a PASSWORD in the book.
- Yes? if so, BINGO, you found the password list. Now you could change the
- passwords to anything you want. But take note, a delimiter is usually put
- at the end of each password. Now whats a delimiter you say? its like a
- character or HEX value thats at the end of each password. For instance a
- hex value of 00 may be at the end of each password. Or each password is
- 8 characters long. Or somthing like that. Well, change them to what you
- please. I did this when i Cracked Silpheed. Kinda weak eh? well who cares.
- Now i dont really call this method "Cracking". Its more like hacking.
- But to prove to my self, i cracked it the next day. not hacking.
-
- The file DOC1.COM is cracked. Go to your MASTER DISK and copy the file on
- the MASTER DISK over to your SCREW AROUND DISK. which will get rid of the
- newly cracked DOC1.COM.
-
- OK, we cracked DOC1.COM two differnt wayz. Now the third way, which is the
- best. This method will totally eliminate the DOC check. Which means, NO
- SIGN of PROTECTION can be detected! Which means, you gotta remove the part
- where it ask for the password. Now take a look at the Listing. Ill copy the
- listing down here so you dont have to switch your face back and forth.
-
- XXXX:0100 Jmp 1E8
- :
- :
- XXXX:01E8 CALL 1F7 <--- Print Message and Ask for Password
- XXXX:01EB OR AX,AX <--- Is the AX register = 0?
- XXXX:01ED JNZ 1F2 <--- No. then jump to 1F2
- XXXX:01EF CALL 225 <--- This is DEATH!
- XXXX:01F2 CALL 21C <--- Call if its CRACKED!
-
- Now look at line 1E8 (call 1F7). This call Ask for the password and returns
- AX=0000 if its wrong, and AX=0001 if its correct. Well, our goal is to get
- to line 1F2 (call 21c)! Well, couldn't we just NOP line 1e8 thru 1Ef? Sure
- we can! Now thats what we gotta do. So write down the bytes around and on
- this area. Use Norton Utilites to search for these bytes and replace them
- with NOP's which is a HEX value of 90. Save your changes and run DOC1.COM.
- The program should just say.. GAME is CRACKEd. or somthing like that.
- Yip, just one line of Text.
-
- Ok, yea! we have cracked this simple doc check program 3 differnt wayz and
- 3 differnt times. Seems pretty easy eh? Well there are some problems. What
- if you didnt have a Correct password to trace thru? Well this is somthing
- only experience could teach. You must experiment with the jumps. If there
- seems to be a compare involved, usually the AX register is changed, and a
- conditional jump instuction follows, force the jump and see what happens.
- If it still eats shit, then dont force it and see what happens. If it still
- eats it, then keep following the path until another conditional jump
- is reached and do the same.
-
- Some INT 13's are similar to the Doc checks i explained above. Look at line
- 1e8 (call 1f7). This subroutine asks for the password and reutns the
- appropriate code. Now what if the Disk drive light lit up when this
- call is executed? If the DISK Protection was found, AX=0001. if its not
- found AX=0000. See its sorta the same.
-
- Oh, now what if the Doc Check is later on in the game. Like Questron II,
- Larry Bird One on One, and Demon Stalker. Well, Load up your debugger with
- the intro exe file. Then Press "g" for go and run the program while your
- debugger is in the background. when the program asks for the Password,
- just type "SHIT" and presss CTRL-BRK! The Debugger should regain control
- and will show you where the current line is at. Trace thru at that point
- and look for them conditional jumps and Comparisons.
-
- Well that wraps it up for this lesson. Any questions? well call ...
-
- THE ROACH MOTEL
- 818-369-2083
- 12/24/and 9600! USR HST!
- 100+ Megz
- Sysop : Black Flag
- Co's : Megaton Man (me)
- Eternal Warrior
- Lone Wolf
-
- Ask for Megaton Man.
-
- END. Line 199.